Data storage and management is often a combination of compromises on embedded platforms due to the overhead associated with the managing of the file systems, files, sector verification, low-level device interaction, and the like, which is typically associated with portable electronics. To illustrate a common scenario where this complexity is necessary, consider the example of FIG. 1, in which a digital camera is compared to a personal computer. To meet the packaging and power requirements, the digital camera has hardware and software specifications that are significantly lower than the general-purpose computer. The processor is specialized, and mass storage only exists in the form of a removable flash device or card, random access memory (RAM) is almost nonexistent, and I/O is greatly reduced and highly specialized to match its specific purposes.
This hypothetical camera has dedicated software designed to manage the flash storage device. Since the flash storage device can be connected directly to the personal computer, it has to use the same high-level file management as the personal computer. That is, the camera must understand the filing system, allocation tables, sector testing, files that are split across sectors, and so on, on top of the need to provide low-level I/O.
In stark contrast, vehicles, such as construction vehicles or agricultural vehicles, may utilize an embedded controller. The embedded controller has very minimal controller resources due to cost considerations. It is not feasible to have a sophisticated filing system for storage of data. In a typical storage system, no high-level filing system is utilized and the memory devices are addressed directly and efficiently. Compared against the aforementioned digital camera, the embedded controllers of a vehicle serve as data logging devices with very different goals and interfaces. Concerning vehicles, there is a need to store operational data on the functioning of the vehicle in nonvolatile storage. The data is maintained in RAM as a normal controller operation and written into nonvolatile flash memory at power down to permanently commit the data to storage. With no filing system requirement, the flash device is addressed directly and efficiently.
Flash memory is typically accessible by sectors, with sector sizes dependent upon the size of the device. For example, a 32 MB flash memory may have a 32 kB sector size, a 4 GB flash memory may have a 256 kB sector size. To change any byte in the sector typically necessitates an erase/write cycle on that entire sector. A problem exists in that flash memory technology is only capable of a defined number, such as 100,000 erase/write (E/W) cycles per sector prior to sector failure. Consumer electronics are designed with this constraint and have file management capabilities to test and avoid bad sectors that have been exhausted. Further, secondary shadow RAM attempts to minimize the number of E/W cycles to the various sectors and will only commit an erase/write cycle if numerous changes are requested for a shadowed flash sector. For example, if a single shadowed sector is getting thousands of hits in shadow RAM, the write to memory will not be committed until the algorithm determines swapping shadowed sectors will result in minimum impact to the device. Over time, device capacity may or may not diminish as a result of exhausted sectors, depending on the device algorithm.
Different nonvolatile storage technologies, such as ferroelectric random access memory (FRAM) or magnetoresistive random access memory (MRAM) have E/W cycles an order of magnitude greater than flash memory, but typically have storage capacities that are five or more magnitudes smaller. The limited capacity of these memories render these technologies useless for high volume storage despite their increased device longevity.
FRAM has the same functionality as flash memory, even having lower power usage and faster write performance and much greater maximum number of E/W cycles. FRAM disadvantages are that there are much lower storage densities than flash memory devices, storage capacity limitations, and higher cost involved with FRAM technology.
What is needed in the art is the mass storage capacity of flash memory and its lower cost with the higher E/W cycle performance of the FRAM technology so that it can be cost effectively utilized in applications using memory.